package com.project.system.domain.entity;

import com.project.common.domain.po.DbBase;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author : [chg]
 * @className : EmployeeDetail
 * @description : 员工详细信息实体
 * @createTime : [2025/7/9 11:30]
 */
@Entity
@Data
@Table(name = "tb_employee_detail")
@org.hibernate.annotations.Table(appliesTo = "tb_employee_detail", comment = "员工详细信息")
public class HrEmployeeDetail extends DbBase {
    @Column(columnDefinition = "bigint DEFAULT NULL COMMENT '用户ID'")
    private Long userId; // 用户ID
    
    @Column(columnDefinition = "bigint DEFAULT NULL COMMENT '仓库ID'")
    private Long warehouseId; // 仓库ID

    @Column(columnDefinition = "varchar(20) DEFAULT NULL COMMENT '工号'")
    private String jobNumber; // 工号
    
    @Column(columnDefinition = "bigint DEFAULT NULL COMMENT '薪资ID'")
    private Long salaryId; // 薪资ID
    
    @Column(columnDefinition = "int DEFAULT NULL COMMENT '发薪周期（1-每月,2-半月,3-每周）'")
    private Integer payCycle; // 发薪周期（1-每月,2-半月,3-每周）
    
    @Column(columnDefinition = "datetime DEFAULT NULL COMMENT '入职时间'")
    private LocalDateTime hireDate; // 入职时间

    @Column(columnDefinition = "datetime DEFAULT NULL COMMENT '上岗时间'")
    private LocalDateTime startDate; // 上岗时间
    
    @Column(columnDefinition = "varchar(20) DEFAULT NULL COMMENT '联系方式'")
    private String contact; // 联系方式
    
    @Column(columnDefinition = "int DEFAULT NULL COMMENT '婚姻状况（1-已婚,2-未婚,3-离异）'")
    private Integer maritalStatus; // 婚姻状况（1-已婚,2-未婚,3-离异）
    
    @Column(columnDefinition = "datetime DEFAULT NULL COMMENT '生日'")
    private LocalDateTime birthday; // 生日

    @Column(columnDefinition = "int DEFAULT NULL COMMENT '性别（1-男 2-女）'")
    private Integer sex; // 性别
    
    @Column(columnDefinition = "varchar(200) DEFAULT NULL COMMENT '家庭住址'")
    private String address; // 家庭住址
    
    @Column(columnDefinition = "varchar(200) DEFAULT NULL COMMENT '员工照片'")
    private String photo; // 员工照片
    
    @Column(columnDefinition = "varchar(500) DEFAULT NULL COMMENT '备注'")
    private String remark; // 备注
    
    @Column(columnDefinition = "int DEFAULT NULL COMMENT '员工状态（1-在职,2-离职）'")
    private Integer status; // 员工状态（1-在职,2-离职）
    
    @Column(columnDefinition = "datetime DEFAULT NULL COMMENT '离职时间'")
    private LocalDateTime leaveDate; // 离职时间
    

}